package com.xinqi.modules.course.clazz.dto.rsp;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 班级表-响应对象
 *
 * @author: system
 * @date: 2023/01/17
 */
@Data
@Schema(description = "班级表-响应")
public class ClassResultNewDTO implements Serializable {
    /**
     * 主键id
     */
    private Long id;
    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建者姓名
     */
    private String createName;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 乐观锁
     */
    private Integer version;
    /**
     * 学校ID
     */
    private Long schoolId;
    /**
     * 课程id
     */
    private Long courseId;
    /**
     * 拥有者ID
     */
    private Long userId;
    /**
     * 班级名称
     */
    private String name;

    /**
     * 班级课程码
     */
    private String courseCode;
    /**
     * 二维码
     */
    private String qrCode;
    /**
     * NORMAL("NORMAL", "正常"),DISABLE("DISABLE", "停用");
     */
    private String status;
    /**
     * 是否允许退课
     */
    private Integer isDropClass;
    /**
     * 是否开启学生人数限制（0关闭，1开启）
     */
    private Integer isStudentCount;
    /**
     * 学生人数限制
     */
    private Integer studentCount;

    /**
     * 已有学生数量
     */
    private Integer existedStuCount;

    /**
     * 名称是否可编辑,0-不可编辑，1-可编辑，默认为1
     */
    private Integer isNameEditable;

    /**
     * TEACHER-老师;ASSISTANT-助教;REPRESENTATIVE-课代表;STUDENT-学生
     */
    private String classRole;

    /**
     * 课程名称
     */
    private String courseName;

    /**
     * 老师
     */
    private ClassTeacherResultDTO teacher;

    /**
     * 当前登录人加课信息
     * NOT_ACCEPT("NOT_ACCEPT", "未申请"), UNAUDITED("UNAUDITED", "待审核"), PASS("PASS", "通过"),REJECT("REJECT", "拒绝");
     */
    private String auditStatus;
    /**
     * 扩展字段
     */
    private String extend;

    /**
     * 学生列表
     */
    List<ClassStudentResultDTO> studentList;

}
